const defaultSettings = {
  restReminderOpen: true,
};

chrome.runtime.onInstalled.addListener(() => {
  // 获取持久化的设置
  chrome.storage.sync.get().then((storageCache) => {
    console.log("get storageCache ", storageCache);

    let settings = {};
    if (!Object.keys(storageCache).length) {
      console.log("没有历史信息");
      chrome.storage.sync.set({ ...defaultSettings }, () => {
        console.log("初始化设置");
        settings = { ...defaultSettings };
      });
    } else {
      console.log("获取到历史设置信息");
      settings = { ...storageCache };
    }

    // init(settings);
  });
});

chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
  if (message.msgType === "getSettings") {
    console.log("获取设置信息");

    chrome.storage.sync.get().then((cache) => {
      // sendResponse({ settings: { ...cache }, msgType: "initSetting" });
      chrome.runtime.sendMessage({ settings: { ...cache }, msgType: "initSetting" });
    });
  } else if (message.msgType === "openReminder") {
    // 开启操作
    chrome.storage.sync.set({ restReminderOpen: true }, function () {
      console.log("保存成功");
    });
  } else if (message.msgType === "closeReminder") {
    // 关闭操作
    chrome.storage.sync.set({ restReminderOpen: false }, function () {
      console.log("保存成功");
    });
  } else {
    console.log("没有匹配的信息");
  }
});

chrome.storage.onChanged.addListener((changes, area) => {
  console.log("changes", changes, "area", area);
});

function init(settings) {
  if (settings.restReminderOpen) {
    setInterval(() => {
      notify(new Date().toUTCString());
    }, 2000);
  }
}

// 桌面通知
function notify(id) {
  chrome.notifications.create(
    id, // id: 保证每个通知的唯一，这个id是字符串类型
    {
      type: "basic", // type: 通知类型，有basic（默认）、image、list、progress
      title: "该休息了！", // title: 通知主标题
      message: "到了该休息的时候了，喝点水休息一下吧！", // message: 通知副标题
      iconUrl: "icon.png", // iconUrl: 图标的url
      // contextMessage: "2 秒后，清除桌面通知 ！！！", // contextMessage: 通知的备选内容,
      // buttons: [
      //   {
      //     title: "按钮标题",
      //     iconUrl: "icon.png",
      //   },
      // ],
      eventTime: Date.now() + 2000, // eventTime: Date.now() + 2000　　通知的时间戳
      // imageUrl："image"类型的通知的图片的URL
      // appIconMaskUrl: 应用图标URL的掩码，用以规范URL，这个扩展应该是用不到
      // progress:进度
      // buttons: [{title: '按钮1的标题', iconUrl:' icon.png'},{title: '按钮2的标题',iconUrl: 'icon.png'}],  最多两个按钮
      // items: [{title: '消息1', message: '消息1'},{title: '消息2', message: '消息2'}], 通知列表，对应type是list时使用，只有title和message两个属性
    },
    (id) => console.log("111111111", id)
  );
}
